Generalized quaternion interpolation is an interpolation method that extends the quaternion slerp algorithm. This generalized method can interpolate between more than two unit-quaternions, but is neither closed-form nor fixed-time.
Contents |
General interpolation of unconstrained values with weights is defined as the value that solves the sum
Because and values are unconstrained, this can be rewritten in the more familiar form of
Unit quaternions, on the other hand, are constrained and the closed-form interpolation solution can not be applied to them.
Because the unit-quaternion space is a closed Riemannian manifold, the difference between any two values on the manifold (in the tangent-space of the first value) can be defined as
where the logarithm is the hypercomplex logarithm. This difference can be applied to the value in which it is a tangent-space member as
where the hypercomplex exponential is used.
With these definitions in mind, the quaternion interpolation of values with weights can be defined (nearly identically to the unconstrained mean) as
which says that the weighted sum of all differences to (in 's tangent-space) is zero.
The quaternion mean value defined above can be found in a recursive algorithm with some initial estimate (one of the points, for example) that will halt when the net-error is below some threshold or the algorithm has iterated beyond some time limit.
Each iteration of the algorithm is as follows, with an initial mean estimate of
as iteration index increases, the value will approach the true weighted-mean of the points.